package demo4;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:张熳
 * Date:2025-08-28
 * Time:21:11
 */
//实现多个接口 + Object类

//接口与接口之间可以多继承。即：用接口可以达到多继承的目的。
interface IA {
    void testA();
}

interface IB {
    void testB();
}

//接口间的继承相当于把多个接口合并在一起.如下，创建一个新接口IC去继承IA、IB接口
interface IC extends IA,IB {
    void testC();
}
//而上述创建的新接口的名称我们一般都写为 IAmphibious 表示‘两栖的’
interface IAmphibious extends IA,IB {
    void testC();
}
//此时实现接口创建的 D 类，除了实现 IAmphibious 自己的方法，还要继续实现 IA、IB的方法
class D implements IAmphibious {

    @Override
    public void testA() {

    }

    @Override
    public void testB() {

    }

    @Override
    public void testC() {

    }
}


//一个类可以实现多个接口
public class Test {
    public static void eat(Animal animal){
        animal.eat();
    }
    public static void run(IRunning iRunning){
        iRunning.run();
    }
    public static void swim(ISwimming iSwimming){
        iSwimming.swim();
    }
    public static void fly(IFly iFly){
        iFly.fly();
    }

    public static void main(String[] args) {
        //所有类都存在继承关系，默认会继承Object父类，即所有类的对象都可以使用Object的引用来接收
        Object obj = new Duck("小鸭",1);
        Object obj1 = new Dog("小狗",2);
        Object obj2 = new Fish("小鱼",3);
    }
    public static void main3(String[] args) {
        run(new Robot());
    }
    public static void main2(String[] args) {
        run(new Dog("小狗",1));
        run(new Duck("小鸭",2));
        fly(new Duck("小鸭",2));
        swim(new Fish("小鱼",3));
    }
    public static void main1(String[] args) {
        eat(new Dog("小狗",1));
        eat(new Fish("小鱼",2));
        eat(new Duck("小鸭",3));
    }
}
